HAL LTDC IRQ handler and callbacks functions migration ¶
This section provides information about the HAL LTDC callbacks register/unregister functions migration.
HAL LTDC error callback ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_LTDC_ErrorCallback(LTDC_HandleTypeDef *hltdc);
|
HAL_LTDC_ErrorCallback(hal_ltdc_handle_t *hltdc);
|
HAL LTDC line event callback ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_LTDC_LineEventCallback(LTDC_HandleTypeDef *hltdc);
|
HAL_LTDC_LineDetectionCallback(hal_ltdc_handle_t *hltdc);
|
HAL LTDC reload event callback ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_LTDC_ReloadEventCallback(LTDC_HandleTypeDef *hltdc);
|
HAL_LTDC_ReloadEventCallback(hal_ltdc_handle_t *hltdc);
|
HAL LTDC register callback functions ¶
In HAL1, the function
HAL_LTDC_RegisterCallback
is used to register various LTDC callbacks through a single function with a specific callback ID.
In HAL2, distinct functions are available to register each specific LTDC callback, providing more granularity and control over the callback registration process.
|
HAL1 |
HAL2 |
|
|---|---|---|
|
LTDC ERROR callback |
HAL_LTDC_RegisterCallback(&hltdc, HAL_LTDC_ERROR_CB_ID, USER_LTDC_ErrorCallback);
|
HAL_LTDC_RegisterErrorCallback(&hltdc, USER_LTDC_ErrorCallback);
|
|
LTDC Line Detection callback |
HAL_LTDC_RegisterCallback(&hltdc, HAL_LTDC_LINE_EVENT_CB_ID, USER_LTDC_LineEventCallback);
|
HAL_LTDC_RegisterLineDetectionCallback(&hltdc, USER_LTDC_LineEventCallback);
|
|
LTDC Reload Event callback |
HAL_LTDC_RegisterCallback(&hltdc, HAL_LTDC_RELOAD_EVENT_CB_ID, USER_LTDC_ReloadEventCallback);
|
HAL_LTDC_RegisterReloadEventCallback(&hltdc, USER_LTDC_ReloadEventCallback);
|
Related concept: Individual callback registration APIs replace global register and unregister functions
HAL LTDC unregisters callback functions ¶
In HAL1, the functions
HAL_LTDC_UnRegisterCallback
is used to unregister various LTDC callbacks through a single function with a specific callback ID.
In HAL2, the unregister callback API has been removed. Instead, callbacks can be managed by re-registering the default HAL LTDC weak callbacks as needed.
|
HAL1 |
HAL2 |
|
|---|---|---|
|
LTDC ERROR callback |
HAL_LTDC_UnRegisterCallback(&hltdc, HAL_LTDC_ERROR_CB_ID);
|
HAL_LTDC_RegisterErrorCallback(&hltdc, HAL_LTDC_ErrorCallback);
|
|
LTDC Line Detection callback |
HAL_LTDC_UnRegisterCallback(&hltdc, HAL_LTDC_LINE_EVENT_CB_ID);
|
HAL_LTDC_RegisterLineDetectionCallback(&hltdc, HAL_LTDC_LineDetectionCallback);
|
|
LTDC Reload Event callback |
HAL_LTDC_UnRegisterCallback(&hltdc, HAL_LTDC_RELOAD_EVENT_CB_ID);
|
HAL_LTDC_RegisterReloadEventCallback(&hltdc, HAL_LTDC_ReloadEventCallback);
|
Related concept: Individual callback registration APIs replace global register and unregister functions
HAL LTDC IRQHandler function ¶
|
HAL1 |
HAL2 |
|---|---|
HAL_LTDC_IRQHandler(LTDC_HandleTypeDef *hltdc);
|
HAL_LTDC_IRQHandler(hal_ltdc_handle_t *hltdc);
|
Note
In HAL1, all LTDC interrupts were managed by a single global function
HAL_LTDC_IRQHandler(LTDC_HandleTypeDef
*hltdc).
In HAL2, this global handler is retained specifically for managing line and register reload interrupts. Additionally, dedicated IRQ handlers have been introduced to handle distinct interrupts:
HAL_LTDC_ERR_IRQHandler(hal_ltdc_handle_t *hltdc): handles transfer error and FIFO underrun interrupts.HAL_LTDC_LineDetectionIRQHandler(hal_ltdc_handle_t *hltdc): handles line detection interrupts.HAL_LTDC_ReloadEventIRQHandler(hal_ltdc_handle_t *hltdc): handles register reload interrupts.
Related concept: Introduce specialized IRQ handlers